<?php

class PrestacionesController extends Controller
{
	/**
	 * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
	 * using two-column layout. See 'protected/views/layouts/column2.php'.
	 */
	public $layout='//layouts/column2';

	/**
	 * @return array action filters
	 */
	public function filters()
	{
		return array(
			'accessControl', // perform access control for CRUD operations
			'postOnly + delete', // we only allow deletion via POST request
		);
	}

	/**
	 * Specifies the access control rules.
	 * This method is used by the 'accessControl' filter.
	 * @return array access control rules
	 */
	public function accessRules()
	{
		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('index','view'),
				'users'=>array('*'),
			),
			array('allow', // allow authenticated user to perform 'create' and 'update' actions
				'actions'=>array('create','update'),
				'users'=>array('@'),
			),
			array('allow', // allow admin user to perform 'admin' and 'delete' actions
				'actions'=>array('admin','delete','carga','cargarMisPrestaciones','cargarMisPatologiasPrestaciones'),
				'users'=>array('admin'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}
        
        
        /**
	 * Returns the data model based on the primary key given in the GET variable.
	 * If the data model is not found, an HTTP exception will be raised.
	 * @param integer the ID of the model to be loaded
	 */
	public function loadModel($id)
	{
		$model=Prestaciones::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}

	/**
	 * Performs the AJAX validation.
	 * @param CModel the model to be validated
	 */
	protected function performAjaxValidation($model)
	{
		if(isset($_POST['ajax']) && $_POST['ajax']==='prestaciones-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
        
        
        /************************************************************/
        /************************************************************/
        
        /**
	 * Deletes a particular model.
	 * If deletion is successful, the browser will be redirected to the 'admin' page.
	 * @param integer $id the ID of the model to be deleted
	 */
	 public function actionDelete($id)
	 {
          $transaction = Yii::app()->db->beginTransaction();
	  try{
                $this->loadModel($id)->delete();
                
                $logs = new LogsTransacciones;
                $logs->tabla = Yii::app()->getController()->getId();
                $logs->fecha = date('Y-m-d');
                $logs->usuario =  Yii::app()->user->name;
                $logs->operacion = 'ELIMINACION';
                $logs->comentarios = 'ELIMINACION - ' . $id;
                $logs->save();
                $transaction->commit();

                if(!isset($_GET['ajax']))
                    Yii::app()->user->setFlash('success','EXITO!!!. La eliminacion fue Exitosa.');
                else{
                 echo CJSON::encode(array(
                         'result'=>1,
                         'result_texto'=>'La Eliminacion fue Exitosa!!!',                       
                        ));
                    Yii::app()->end(); 
                    exit;
               }
                    
            
                
            }catch(CDbException $e)
            {  $transaction->rollBack();

                if(!isset($_GET['ajax']))
                    Yii::app()->user->setFlash('error','ERROR!!! No se puedo eliminar!!!');
                else
                {
                 echo CJSON::encode(array(
                         'result'=>0,
                         'result_texto'=>'NO se pudo realizar la Eliminacion',
                        ));
                    Yii::app()->end(); 
                    exit;
               }
            }

                // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
                if(!isset($_GET['ajax']))
                    $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
	}
        
        
        
        public function actionDelete1($id)
	{
          $transaction = Yii::app()->db->beginTransaction();
           // Stop jQuery from re-initialization
           Yii::app()->clientScript->scriptMap['jquery.js'] = false;
	  try{
                $this->loadModel($id)->delete();
                
                $logs = new LogsTransacciones;
                $logs->tabla = Yii::app()->getController()->getId();
                $logs->fecha = date('Y-m-d');
                $logs->usuario =  Yii::app()->user->name;
                $logs->operacion = 'ELIMINACION';
                $logs->comentarios = 'ELIMINACION - ' . $id;
                $logs->save();
                $transaction->commit();

              
                 echo CJSON::encode(array(
                         'result'=>1,
                                            
                        ));
                    Yii::app()->end(); 
                    exit;
                
            }catch(CDbException $e)
            {  $transaction->rollBack();

                
                 echo CJSON::encode(array(
                         'result'=>0,
                       
                        ));
                    Yii::app()->end(); 
                    exit;
               
            }

                // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
                if(!isset($_GET['ajax']))
                    $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
	}
        
        
        
        public function actionCarga($idNomencladorUso=null,$idPrestacion=null)
	{     
            $this->layout = '//layouts/column1';		
            $model = new Prestaciones;
            $transaction=$model->dbConnection->beginTransaction();

            try
            { 
                if (isset($_POST["idnomenclador"]))
                    $idNomencladorUso = $_POST["idnomenclador"];
                else
                  if (isset($_GET["idnomenclador"]))
                    $idNomencladorUso = $_GET["idnomenclador"];
                 
                 
                 
               if (isset($_POST["idPrestacion"])){
                    $PrestacionUso = $_POST["idPrestacion"];
                    $model=Prestaciones::model()->findByPk($PrestacionUso);
                    }
                else
                 if (isset($_GET["idPrestacion"])){
                    $PrestacionUso = $_GET["idPrestacion"];
                    $model=Prestaciones::model()->findByPk($PrestacionUso);
                    }
		
                $esNuevo = true;   
		if(isset($_POST['Prestaciones']))
		{       $esNuevo = $model->isNewRecord;
			$model->attributes=$_POST['Prestaciones'];
                        $isvalid = $model->validate();
			if($isvalid){  
                            $logs = new LogsTransacciones;
                            $logs->tabla = Yii::app()->getController()->getId();
                            $logs->fecha = date('Y-m-d');
                            $logs->usuario = Yii::app()->user->name;
                            if ($esNuevo){
                            $logs->operacion = 'ALTA';
                            $logs->comentarios = 'ALTA - ' . $model->id;
                            }else{
                            $logs->operacion = 'MODIFICACION';
                            $logs->comentarios = 'MODIFICACION - ' . $model->id;
                            }                 

                                $logs->save();
                                $model->save();
                                $transaction->commit(); 
                                Yii::app()->user->setFlash('resultado_carga','LA PRESTACION SE CARGO CORRECTAMENTE!!!');
                                $this->redirect(array('carga', 'idNomencladorUso'=>$idNomencladorUso));
                  
                  
                  }
		}

		$this->render('create',array(
			'model'=>$model,
                        'idNomencladorUso'=>$idNomencladorUso,
                    
		));                
            }
            
            catch(CDbException $e){  
                
                Yii::app()->user->setFlash('error','Se ha producido un Error en la Carga POR FAVOR intente Nuevamente!!! <br /> ' . $e);
                $transaction->rollBack();
                  $this->redirect(array('carga', 'idNomencladorUso'=>$idNomencladorUso));
             }   
	}
	
        
        
         /**************************************************************/
         /**************************************************************/
         /**************************************************************/
       public function actionCargarMisPrestaciones(){           
            //agregar la condicion de grupo patologico
            //para que me filtre solo la spermitidas para ese grupo.
            $criteria = new CDbCriteria;              
            $criteria->join="INNER JOIN nomenclador.prestaciones_permitidas as p ON (t.id = p.id_prestacion) INNER JOIN nomenclador.categoria_prestaciones as d ON (d.id = t.id_categoriaprestacion) ";
            $criteria->select = 't.id, t.codigo, t.descripcion';
            $criteria->group = 't.id, t.codigo, t.descripcion';
            if (($_POST["embarazo"] == 1) || (($_POST["embarazo"] == '1'))){
                $criteria->condition = '(p.grp_patologico = ' . $_POST["grp_etareo"] . ' or p.grp_patologico = 6) and t.id_categoriaprestacion = '. $_POST["prestacion"];
            }else
            { 
                $criteria->condition = 'p.grp_patologico = ' . $_POST["grp_etareo"] . ' and t.id_categoriaprestacion = '. $_POST["prestacion"] ; 
            }
                
              $criteria->order = 't.codigo';
            $data = Prestaciones::model()->findAll($criteria);
	     
          	   
             echo CHtml::tag('option',
             array('value'=>"-1"),CHtml::encode("SELECCIONE EL OBJETO DE PRESTACION ..."),true);
	 	
                   
               foreach($data as $value)
               {
                    echo CHtml::tag('option',array('value'=>$value->id),CHtml::encode($value->codigo." - ". $value->descripcion),true);
	       } 
        }        
        
       public function actionCargarMisPatologiasPrestaciones(){
        $criteria = new CDbCriteria;  
        $criteria->condition='id_prestacion=:ctg_id and grp_patologico = :grupoetareo';
        $criteria->params=array(':ctg_id'=>$_POST['objetoprestacion'], ':grupoetareo'=> $_POST["grp_etareo"]);           
        $data = PrestacionesPermitidas::model()->findAll($criteria);

        $resultado = array();
        $patologias = array();
        $patologias[0]['id'] = -1;
        $patologias[0]['codigo'] = '';
        $patologias[0]['descripcion'] = 'Seleccione la Patologia';
            
        if (!empty($data)){
                $i = 0;
                foreach($data as $value)            
                { $i = $i + 1;
                 $k = $value->id_patologia;
                 if ($k != 0){
                     $criteria1 = new CDbCriteria;
                     $criteria1->condition='id=:ctg_id';
                       $criteria1->params=array(':ctg_id'=>$value->id_patologia);   
                 $patologia = Patologia::model()->find($criteria1);           
                 $patologias[$i]['id'] = $patologia->id . "-/-" . $value->id;  
                 $patologias[$i]['codigo'] = $patologia->codigo;
                 $patologias[$i]['descripcion'] = $patologia->descripcion;    }
               else{
                 $patologiasss = Patologia::model()->findAll();
                 foreach($patologiasss as $una)            
                 { $i = $i + 1;
                   $patologias[$i]['id'] = $una->id . "-/-" . $value->id;    
                   $patologias[$i]['codigo'] = $una->codigo;
                   $patologias[$i]['descripcion'] = $una->descripcion;
                 }                 
               }
                   
            }
            
            
          
          }
          
          echo CJSON::encode(
                $patologias 
                );               
          exit;        
                
                 
            }//fin del function
            
            
        
        
        
}
